home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CYBER.XPO.95
/
CYBER.XPO.95 (Arsenal Computer).ISO
/
popreq
/
amiga1
/
amipop17.lha
/
AmiPOP17
/
AmiPOP.doc
< prev
next >
Wrap
Text File
|
1993-11-15
|
13KB
|
398 lines
AmiPOP - A POP3 Client
⌐ 1993 Scott Ellis
Introduction-
What it is -
AmiPOP is a POP3 Client for AmigaDOS. It was written directly from
the POP3 RFC (RFC #1225). AmiPOP is only a simple transport mechanism
for moving electronic mail messages between a POP-Host, typically
a mainframe, and your local AmigaDOS system. The advantage of POP
over other transports such as SMTP is that all E-mail can still be
directed to the mainframe system. This is of primary importance when
either a dialup line is used, which has a new IP address for each
connection, or when a user uses many machines, and wishes to be able
to transparently read mail on all of them.
What it's not -
AmiPOP is not intended to be a do-everything-mail-reader-reminder-slicer-dicer
program. AmiPOP is meant to simply transport mail from a host to your Amiga.
That's it. Nothing else. The "Notify" function inlcuded in AmiPOP is intended
to be a stopgap measure only, and was included as a request of an especially helpful
beta-tester. The "Notify" function will never grow. If you want to do exotic things
when you get new mail, use another utility, like Mike Schwarz's 'Mail-Minder', or
Scott Ellis' (me) program 'Sabot'.
What you need -
AmiPOP requires Commodore's (as yet unreleased) AS225r2 package, and a
machine running a POP3 daemon. (More on this later)
AS225r2 requires AmigaDOS 2.0 or higher, and this is therefore required
by AmiPOP as well.
AmiPOP features -
╖ AUISG compliant (or at least it tries to be!)
╖ Makes heavy use of 2.0 (and higher) functions such as ReadArgs,
utility.library, GadTools, and 2.0 functions in Amiga.lib.
╖ Written from RFC 1225, not a port of a Unix or a PC application.
╖ Small code size, and low system resource usage.
╖ Commodities interface
Options -
Window -
Each gadget in the window may be activated from the keyboard by using
the underlined character in the gadget label (case insensitive). Menu
options can also be accessed via their key combination (Right Amiga key)
Activating a string or integer gadget enables the information to be
immediately typed in, and the gadget can be de-activated either by
the RETURN key, or by cycling to the next gadget with the TAB key.
After activating one of the string or integer gadgets, the TAB key
allows cycling through each of the gadgets. The order is:
╖ POP Host
╖ How Often
╖ Username
╖ Password
╖ Mail Box
If "How Often" is disabled, then it is ignored, and the gadget is skipped
during the TAB-Cycle.
Gadgets -
POP Host -
This is the address of the machine which is running the
POP3 daemon. It can either be an IP address, a full
name and domain, or just the name (if the site is in
your inet:DB/Hosts file, or in your local domain).
Username -
Username is your login name on the POP Host machine.
It is used in determining which mailbox to look at,
and which password to accept.
Password -
This is the password for Username on machine POP Host.
The Password gadget is a special string gadget which
will NOT echo what you type. Instead, you will see
a bullet ( "╖" ) for each character you type. The
Password gadget is more limited in it's editing abilities
then the other gadget, and will only allow you to delete
characters from the end of the password, or clear the
entire gadget.
Mail Box -
Mail Box is the FULL AmigaDOS path and filename that
you would like the mail stored in on your Amiga.
Most UUCP mail-readers require this be "UUMAIL:Username",
but you are free to choose whatever you like.
Append to MailBox -
When checked, this gadget will append all incoming mail
to the file listed in the MailBox gadget. If it is
unchecked, new mail will overwrite the mailbox. This
gadget is most useful in conjuction with the "Delete
Messages" gadget.
Delete Messages -
If Delete Messages is checked, it will delete the mail
message on POP Host after it is downloaded. Caution
is advised with this gadget, since once mail is deleted
on the POP Host, there is no way to retrieve it.
This gadget is best used with "Append to MailBox".
Check Periodically -
When this gadget is marked, mail will be transfered
from the POP Host on a time schedule. This schedule
is defined in "How Often".
How Often -
This gadget defines the number of minutes that should
elapse between queries for mail to POP Host. If
Check Periodically is not checked, this gadget will
be disabled, and have no effect.
Check Now -
Check Now will immediately query POP Host for mail.
It is primarily used for impatient people who cannot
wait for the Check Periodically time to elapse, or
who would like the mail checked manually, instead
of periodically.
Menus -
Hide -
This option will close the AmiPOP window, but not quit
AmiPOP. The window may be reopened either via the
hotkey (If specified) or with Commodities Exchange.
About... -
Opens a requester with the AmiPOP authors name.
Quit -
Quits the AmiPOP program. This is identical to
sending AmiPOP a Control-C character, or clicking
on the close box in the AmiPOP window.
Command Line -
Command line options maybe be given either on the command line
when starting AmiPOP from a shell, or as ToolTypes when
using AmiPOP from an icon.
AmiPOP uses ReadArgs to process command line and tooltype
arguments passed to it.
Username -
This is identical to the Username gadget in the
AmiPOP window. Specifying a username on the
command line avoids having to enter it into the
AmiPOP window.
Password -
This is identical to the Password gadget in the
AmiPOP window. Specifying a password on the
command line avoids having to enter it into the
AmiPOP window.
POPHost -
This is identical to the POP Host gadget in the
AmiPOP window. Specifying a POP Host on the
command line avoids having to enter it into the
AmiPOP window.
MailDir -
This is identical to the MailBox gadget in the
AmiPOP window. Specifying a MailBox on the
command line avoids having to enter it into the
AmiPOP window.
CheckPer -
When given, this switch specifies that the
Check Periodically function should be enabled. It
is identical to making Check Periodically enabled
in the AmiPOP window.
Time -
Time, followed by an integer will place a default
value into the How Often gadget in the AmiPOP
window. If CheckPer is not also given, or if the
Check periodically gadget in the AmiPOP window is
not active, this setting has no effect.
Delete -
When present, this switch enables the Delete Messages
function of AmiPOP. It is identical to the Delete
Messages gadget in the AmiPOP window.
Append -
When present, Append activates the Append to MailBox
feature of AmiPOP. It is identical to activating the
Append to MailBox gadget in the AmiPOP window.
NoWindow -
When the NoWindow flag is given, it instructs AmiPOP not
to open it's window my default. This is useful when
running AmiPOP from WBStartup, or from a script.
The AmiPOP window may later be opened by the hotkey, or
via Commodities Exchange.
Port -
Normally, POP3 uses port 110 on the POP Host machine.
When the Port switch is given, followed by an integer,
that will be used in attempts to connect to the POP3
daemon on the POP Host, instead of port 110.
Notify -
The Notify switch will force AmiPOP to open a requester
when it detects that you have new mail. By default,
AmiPOP does not notify the user of new mail.
Cx_Popkey -
This is the hotkey that AmiPOP will use. When pressed,
AmiPOP will open it's window, if it is not already open.
Any valid hotkey combination may be given. If Cx_Popkey
is not specified, AmiPOP will not add itself to the
input chain, and will not cause any system performance
decrease.
PubScreen -
Giving AmiPOP the name of a public screen will cause the AmiPOP
window to open on that public screen. If AmiPOP cannot open on the
specified screen, or if no screen is specified, AmiPOP will open on
the default public screen (normally WorkBench).
Misc Notes -
POP3 Daemon -
A POP3 Daemon does not need root privledges to install and operate.
Any user may run a POP3 Daemon, so long as it is configured to
use a non-blocked port (typically those above 1024).
Cautions -
It is possible that not all of the bugs have been worked out of
AmiPOP yet, and there are therefore some pitfalls which the user
should keep in mind.
Foremost, Delete Messages WILL delete E-mail messages on POP Host,
so be cautious. If AmiPOP encounters a problem during the
transmission of a message, it will usually abort, and keep all
the messages after and including the one with which it had
problems with, on the POP Host, but there is always the
possibility that the mailbox could be corrupted by a semi-functional
POP3 Daemon on the POP Host, so be aware that your mailbox COULD
get mangled.
If for any reason, AmiPOP must abort abruptly, it attempts to
send the QUIT signal to the POP3 Daemon, but depending on the
circumstances of the AmiPOP failure (i.e., power failure or
general system crash), this may not be possible, and a
brain-dead POP3 Daemon could be left running on the POP Host,
preventing any further POP3 connections until that process
is killed. Please review the CPU and Time limits for processes
under Unix, as well as POP3 Daemon return codes.
Thanks -
Thanks for help in creating AmiPOP are far and wide, and generally
encompass the #amiga and #amigatech group on IRC. Specifically,
the author would like to express his deepest gratitude to
the following people:
Michael B. Smith - LOTS and LOTS of help with sockets, SMTP,
NNTP, the OS, and just about everything.
Christopher A. Wolf - Chris provided invaluable help regarding
the commodities and ReadArgs portion
of this code, as well as general
help on how in the heck to get this
POP program working.
Ken C. Dyke - The very cool Password gadget edithook
would have had me stumped forever, had
it not been for a nice bit of code that
Ken just happened to have laying around. :-)
Michelle R. Ketcham - She found my stupid mistakes, and also
forced me to write AmiPOP in the first
place.
I'm sure I'm forgetting lots and lots of people, and I hate that.
Bugs -
None left that I know of.
To Do -
╖ Allow AmiPOP to get signals while it's transfering. Currently it can't
be hidden/quit while a transfer is in progress. This is lame.
Author Info -
The author of AmiPOP may be contacted at:
Scott Ellis : sellis@ucssun1.sdsu.edu
ScottE on IRC
3640 Mt Everest Blvd, San Diego, CA, 92111 (USA)
Please feel free to contact me, and let me know if you find any bugs
in AmiPOP, or if you find any more efficient ways of doing things.
I'm interested in hearing if anyone actually USES this program, or if it's
just me. ;-)
The source and binary to this program are freeware. Do with it whatever
you like, just remember to give me some credit if you get rich and
famous.
History -
1.0 - Initial release
1.1 - Fixed a few parts of the code where it was possible that we could
do something with a window that wasn't opened yet.
Attempted to fix End Of Message problems.
1.2 - End of Message problem fixed some more. ;-) Still a big kludge.
Added busy pointer during dopop() routine.
Changed "Bummer" to "Ok" in most requesters.
Minor reorganization.
1.3 - Bug Fix.
1.4 - Released with INetUtils via Michael B. Smith. Thanks Michael!
1.5 - Major Code changes.
Variables now dynamically allocated to reduce executable size.
Adding of "From" header revamped.
Added forgotten PrintError() in ReadArgs() section! Oops!
Fixed longstanding bug of missing the first bit of a message when it was sent
in the same packet as the +OK string. Fixed now.
INetUtils release delayed due to circumstances beyind my control. V1.5
released with INetUtils-1.0.
1.6 - Moved 2 checkboxes over a tad, in hopes of avoiding conflics with window border
when using certain fonts.
Changed location of "Notify" window in code, and also make AmiPOP sendstat()
after the "Notify" window is satisfied, in case new messages arrive.
Thanks to Stan Burton for that suggestion.
1.7 - Finally fixed the checkbox font rendering...really, honest, I did this time.
Reduced code size by performing some magic. (hehehe)
Added PubScreen keyword, which should have been in there from the beginning.